 
;BOLO


  180 TO AIM TO L
  GOTO DOWNY

MOVEY

  0 TO SPEEDX
  DAMAGE-5 TO I
  Y-128 TO A
  IF A>0 GOTO BIGY

SMALLY

  180 TO AIM
  GOSUB CORNER

DOWNY

  IF Y>246 GOTO MOVEX
  256-Y*2 TO SPEEDY
  GOSUB LOOK
  GOTO DOWNY

BIGY

  0 TO AIM
  GOSUB CORNER

UPY

  IF Y<10 GOTO MOVEX
  0-Y*2 TO SPEEDY
  GOSUB LOOK
  GOTO UPY

MOVEX

  0 TO SPEEDY
  DAMAGE-5 TO I
  X-128 TO A
  IF A>0 GOTO BIGX

SMALLX

  90 TO AIM
  GOSUB CORNER

RITEX
  
  IF X>246 GOTO MOVEY
  256-X*2 TO SPEEDX
  GOSUB LOOK
  GOTO RITEX

BIGX

  270 TO AIM
  GOSUB CORNER

LEFTX

  IF X<10 GOTO MOVEY
  0-X*2 TO SPEEDX
  GOSUB LOOK
  GOTO LEFTX

LOOK

  AIM TO Q TO RADAR
  IF RADAR>0 GOTO BEHIND
  -5-RADAR TO SHOT

STOP

  0 TO SPEEDX TO SPEEDY

SHOOT

  0-RADAR TO SHOT
  AIM TO RADAR
  IF RADAR>0 GOTO LEAVE
  GOTO SHOOT

LEAVE

  Q TO AIM
  ENDSUB

BEHIND

  AIM+180 TO AIM TO RADAR
  IF RADAR>0 GOTO LEAVE
  10 - RADAR TO SHOT
  GOTO STOP

CORNER

  0 TO S
  AIM - L TO R
  IF R>90 -90 TO R
  IF R<-90 90 TO R
  R/9 TO T
  AIM TO L

BEAM

  AIM TO RADAR
  IF RADAR>0 GOTO SCAN
  0-RADAR TO SHOT
  IF DAMAGE<I GOTO EXIT
  GOTO BEAM

SCAN

  IF S=9 GOTO CHECK
  IF DAMAGE<I GOTO EXIT
  AIM+T TO AIM
  S+1 TO S
  GOTO BEAM

EXIT

  L TO AIM
  ENDSUB

CHECK

  IF Q=1 GOTO EXIT
  0 TO S
  1 TO Q
  L+5 TO AIM
  GOTO BEAM
